unit planets;

interface

uses
	Classes, SysUtils;

type

TddgPlanets = class(TComponent)
private
function GetPlanetName(const AIndex: 
                                                                 Integer): String;
function GetPlanetPosition(const APlanetName: 
                                                                 String): Integer;
public
property PlanetName[const AIndex: Integer]: 
                                                                                  String
				read GetPlanetName; default;

property PlanetPosition[const APlantetName: String]: 
                                                                                    Integer
                   read GetPlanetPosition;
end;

implementation

const
PlanetNames: array[1..9] of String[7] =
             ('Mercury', 'Venus', 'Earth', 
                'Mars', 'Jupiter', 'Saturn',
               'Uranus', 'Neptune', 'Pluto');


function TddgPlanets.GetPlanetName(const 
                                                      AIndex: Integer): String;
begin
if (AIndex < 0) or (AIndex > 9) then
		raise Exception.Create('Wrong Planet number, 
                                                                  enter a number 1-9')
else
	Result := PlanetNames[AIndex];
end;

function TddgPlanets.GetPlanetPosition(
                              const APlanetName: String): Integer;
var
	i: integer;
begin
Result := 0;
i := 0;
{Tm v tr hanh tinh da theo ten }
repeat
	inc(i);
until (i = 10) or (CompareStr(UpperCase(APlanetName),
                                  UpperCase(PlanetNames[i])) = 0);
if i <> 10 then 
Result := i;
end;

end.
